¡Epidemia!

logo

Una epidemia es el fenómeno demográfico provocado por la dispersión de una enfermedad contagiosa en una población. La enfermedad va saltanto de individuo en individuo a través de un vector (un virus, por ejemplo). La epidemia se caracteriza por la dinámica temporal que exhibe el número de infectados, que suele comenzar de forma explosiva para llegar a un pico y luego disminuir hasta desaparecer la enfermedad en la población. Hay situaciones variantes en las que persiste la enfermedad indefinidamente en la población, causando un menoscabo al crecimiento demográfico, lo que puede funcionar como un mecanismo regulador.

«Se ha hecho viral»

Es una expresión que se aplica a un mensaje que corre de móvil en móvil y en muy poco tiempo alcanza a todos los que están expuestos a esa forma de comunicación. Esto no es nuevo, antiguamente ya corrían de esa forma chistes y chismes, no tan velozmente tal vez pero sí con el mismo mecanismo. La fuerza que impulsa estos fenómenos se alimenta de la energía acumulada en los individuos y es más intensa cuanto mayor es la población. Igual que corre el fuego por un bosque o los neutrones entre el uranio, las epidemias se comportan de forma sorprendente y, sin embargo, pueden comprenderse con unas sencillas matemáticas. Ese es el objetivo de este episodio.


Las reglas más sencillas

Imaginemos una población en la que unos cuantos individuos están infectados con una enfermedad contagiosa. Al moverse aleatoriamente pueden contagiar a otros individuos con los que se crucen y éstos a su vez a otros. Cuando un individuo se recupera de la enfermedad ya no vuelve a contagiarse y tampoco puede propagarla.

Veamos estas sencillas reglas en acción:



Dinámica espacial de una epidemia. Los individuos infectados pueden contagiar la enfermedad (o contar el chiste) a los que aún no la han pasado (susceptibles ). Después de cierto tiempo, los infectados se recuperan (o el chisme pierde interés para ellos) y se vuelven inmunes al proceso (). Cuando quedan pocos susceptibles o pocos infectados, cesa la epidemia. Observa que la epidemia comienza de forma explosiva y que no todos los susceptibles tienen que haber pasado la enfermedad cuando acaba la epidemia.




En lo que sigue, pondremos a prueba unas sencillas reglas y las simples ecuaciones que de ellas se deducen. Sus implicaciones, por tanto, son más heurísticas que aplicables; cualquier modelo que verdaderamente pueda resolver problemas como el que todos tenemos en mente debe considerar muchos aspectos secundarios que aquí se eluden por mor de mantener la sencillez a toda costa. Aún así, veremos que unas ecuaciones inocentes pueden exhibir un comportamiento complejo y hacernos pensar sobre detalles aparentemente triviales que después se manifiestan de forma inesperada.

Luego, una vez trillado este repaso, en otro sitio se desarrolla otra aproximación más evolutiva que matemática, donde exploraremos una fantástica coevolución entre entre individuos y virus.

Matemática de una epidemia

Las ecuaciones más sencillas surgen cuando se consideran tres tipos de individuos (\(S\) susceptibles a la infección, \(I\) infectados y \(R\) recuperados de la enfermedad) junto con los siguientes axiomas:

  • Cualquier individuo susceptible puede contraer la enfermedad con cierta probabilidad en un plazo determinado.

  • Esta probabilidad aumenta proporcionalmente al número de infectados.

  • Al cabo de cierto tiempo la enfermedad cesa en el infectado, bien con su inmunización o con su muerte, con el efecto neto de sacarlo de la población infectada.

Con estas premisas de partida, el par de sesudos matemáticos ingleses Kermack y McKendrick a partir de unos trabajos previos muy enrevesados del teniente coronel Ross (nobel de medicina hace más de un siglo) y la joven matemática Hilda Hudson, desarrollaron un completa teoría que, simplificada al considerar tasas constantes y una población suficientemente grande, se puede resumir en la siguiente ecuación:

\[\begin{align} cambio\;en\;infectados =& \;contagios - recuperaciones \\[7pt] \frac{dI}{dt} =& \beta S I - \gamma I \end{align}\]

El término \(\beta S I\) representa los nuevos contagios por unidad de tiempo, siendo \(S\) e \(I\), respectivamente, el número de susceptibles e infectados en la población; mientras que \(\beta\) es un coeficiente de contagio que aúna en un solo parámetro las propiedades contagiosas de la enfermedad y los hábitos sociales de la población: cuanto mayor es, más fácilmente se contagia la enfermedad. Vamos, la ley de acción de masas en su más pura interpretación.

Por otro lado, \(\gamma I\) representa la retirada de individuos infectados (bien porque se recuperan volviéndose inmunes, bien porque pasan a mejor vida; el caso es que ya no juegan). El coeficiente \(\gamma\) está relacionado con la duración de la enfermedad, en particular, con el tiempo que el individuo es contagioso, como veremos con detalle dentro de un rato.

Como el proceso epidémico cursa mucho más rápido que la natalidad y mortalidad naturales de la población, el número total de individuos \(N = S + I + R\) permanece constante y, por ello, las tres ecuaciones diferenciales que siguen suman 0:

\[\begin{align} \frac{dS}{dt} &= - \beta S I \\[7pt] \frac{dI}{dt} &= \beta S I - \gamma I \\[7pt] \frac{dR}{dt} &= \gamma I \end{align}\]



Figura 1. Diagrama de compartimentos SIR. La ecuaciones se pueden interpretar como un flujo entre tres compartimentos que representan el número de susceptibles, infectados y retirados. Observa que no hay flechas de entrada ni salida, así que el número total permanece constante.


Significado de β

La ecuación de \(S\) expresa la velocidad con la que aparecen nuevos infectados y, como adelantamos antes, es una simple aplicación de la ley de acción de masas: la velocidad es proporcional a la concentración de reactivos (susceptibles e infectados, en este caso). Así, el coeficiente \(\beta\) es equivalente a la constante de velocidad de la reacción.


Ejemplo académico

En un pueblo con 1000 habitantes susceptibles surge una epidemia y se comprueba que un infectado contagia a 2 personas, en promedio, durante los 5 días que dura la enfermedad. ¿Cuánto vale β?

Veamos…

  • Un infectado contagia a 2 susceptibles. Como lo puede hacer mientras dura su enfermedad (5 días), cada día contagiará a \(\frac{2}{5}\) individuos.

  • Como hay \(I\) infectados, el número de nuevos contagios diarios será \(\frac{2}{5}I\)

  • ¿Y cómo metemos \(S\)? A ver… Como ocurre en las reacciones químicas, la velocidad de reacción es más rápida al principio, cuando los reactivos están en mayor concentración. De forma análoga, la velocidad de contagios es mayor al principio de la epidemia (cuando \(S\) es grande) que al final (cuando \(S\) es menor). Esto significa que \(\frac{2}{5}\) es justamente \(\beta S_0\), siendo \(S_0\) la población susceptible inicial (1000). Ya lo tenemos:

\[\beta = \frac{2}{5}·\frac{1}{1000} = 0.0004 \; \text{individuos}^{-1}\text{día}^{-1}\]


Significado de γ

Este coeficiente parece inocente y no lo es en absoluto. Como tasa de recuperación se puede deducir intuitivamente como el inverso del tiempo de recuperación (Figura 2).


Figura 2. Significado de γ. En el ejemplo anterior, como la duración de la enfermedad es 5 días, cuando pase un día se recuperarán 7 de los 35 infectados, es decir \(\frac{1}{5}\), de modo que \(\gamma\) es, intuitivamente, el inverso de la duración de la enfermedad. Este razonamiento asume que hay infectados recientes y veteranos en la misma proporción (los puntitos rojos se distribuyen homogéneamente en el plazo de convalecencia) o que la probabilidad de recuperación es independiente del tiempo de convalecencia. No es difícil demostrar que esta premisa se cumple siempre en un estado estacionario pero, como la epidemia cursa en forma de onda, esto supondrá un problema que solucionaremos más adelante.


Entonces, la recuperación de infectados \(-\gamma I\) tendría una dinámica de orden 1, que en ausencia de otro proceso aparecería como una caída exponencial y la evolución del número de infectados con el tiempo sería

\[ I = I_0 e ^{-\gamma t} \] donde \(I_0\) representa a los infectados iniciales a partir de los que se tiene en cuenta el tiempo. La gráfica no tiene mucho misterio (Figura 3).


Figura 3. Dinámica de \(I\) cuando no hay nuevos contagios y la probabilidad de recuperación es constante e independiente del tiempo que pasa un individuo infectado. Es un proceso exponencial donde el tiempo en que se reducen los infectados a la mitad es exactamente \(\frac{\ln 2}{\gamma}\) (compruébalo tú mismo). Si piensas un poco en lo que ocurre realmente, verás inmediatamente una inconsistencia grave. Si no te das cuenta ahora, no te procupes que lo resolveremos más abajo.


Dinámica de la epidemia

Las ecuaciones diferenciales son muy sencillas pero no tienen integral exacta, aunque es fácil aproximarla numéricamente con la ayuda de R. Mira el siguiente código que resuelve el ejemplo académico de arriba:

# INTEGRACIÓN DE LAS ECUACIONES S.I.R.

#---- tiempo final
tiempo_final <- 80
t <- seq(from = 1, to = tiempo_final)

#---- condiciones iniciales y valores de coeficientes
S <- numeric()
S[1] <- 999 # susceptibles iniciales
I <- numeric()
I[1] <- 1      # infectados iniciales
R <- numeric()
R[1] <- 0      # retirados iniciales
beta <- 0.0004
gama <- 1/5

#---- bucle integración Euler
for (i in 1:(length(t)-1)){
  contagios <- beta*S[i]*I[i]
  retirados <- gama*I[i]
  S[i+1] <- S[i] - contagios
  I[i+1] <- I[i] + (contagios - retirados)
  R[i+1] <- R[i] + retirados
}

#---- gráfico
par(bty = "n", las = 1)
plot(t, S, ylim = c(0, 1000), type = "l", col = "green", lwd = 2,
     xlab = "Tiempo (días)", ylab = "Individuos")
lines(t, R, col = "grey", lwd = 2)
lines(t, I, col = "red", lwd = 2)
legend("topright", c("S","I","R"), lwd = 2, col = c("green", "red", "grey"), cex = 0.8, bty = "n")

Figura 4. Dinámica de una epidemia. La curva roja representa la epidemia, propiamente dicha. Observa el inicio exponencial, el pico y la ulterior decaída, fases típicas en toda epidemia. Ojo a la línea verde: no todos los susceptibles deben pasar la enfermedad antes de que acabe la epidemia.


Características de la dinámica epidémica

En la Figura 4 destacan los rasgos dinámicos de toda epidemia: el inicio exponencial, el pico de infectados y el descenso final hasta la desaparición de la enfermedad en la población. En este modelo aparece una curva asimétrica: el inicio es mucho más empinado y el descenso es más lento. La razón es que el contagio depende del cuadrado de los individuos mientras que la recuperación es una función lineal. Esta característica puede ser irreal y la resolveremos más abajo. Un factor clave es la densidad de población, que determina si se da o no la propagación epidémica y también influye en los susceptibles que se libran de la enfermedad.


Efecto de la densidad de población

El tamaño de la población es un factor crítico en las epidemias. Podemos verlo mejor si expresamos los infectados en porcentaje de la población y hacemos varias simulaciones con distintas densidades, por ejemplo con 8000, 4000, 2000, 1000 y 400 criaturas:

Efecto de la densidad de población. La misma enfermedad (como antes, \(\beta = 0.0004\) y \(\gamma = 0.2\)) desencadena distintos tipos de epidemia dependiendo del tamaño de la población susceptible: cuanto mayor es la población, más rápidamente se produce la epidemia, mayor porcentaje de la población se afecta y antes acaba el proceso. Pero… ¿qué ocurre con la de 400 habitantes?


Efectiviwonder, cuanto mayor es la población, más devastadora es la epidemia. Los efectos en poblaciones menores son cada vez más suaves, llegando al extremo, en la ciudad con 400 habitantes, de ni siquiera producirse la epidemia, a pesar de tratarse de la misma enfermedad y el mismo tipo de costumbres sociales. ¿Por qué?




¿Todos tienen que pasar la enfermedad?

No siempre. Ya ves en el ejemplo: quedan unos 200 susceptibles indemnes depués de acabar la epidemia. Depende del valor de los coeficientes y de la densidad de la población. La integración numérica puede darnos una pista, pero es mejor deducirlo analíticamente. Veamos esto con más detalle porque está a nuestro alcance.

Solo hay que encontrar cómo varía \(I\) en función de \(S\) así que partimos de las ecuaciones originales, aunque la segunda la escribiremos resumida para simplificar un poco:

\[\begin{align} \frac{dS}{dt} &= - \beta S I \\[7pt] \frac{dI}{dt} &= (\beta S - \gamma) I \end{align}\]

Ahora, para saber cómo varía \(I\) con respecto a \(S\), dividimos la segunda por la primera:

\[\frac{dI}{dS} = \frac{\gamma - \beta S}{\beta S}\]

es decir,

\[\frac{dI}{dS} = \frac{\gamma}{\beta S} - 1\]

y ahora separamos las diferenciales

\[{dI} = \left(\frac{\gamma}{\beta S} - 1\right) {dS}\]

para poder integrar por partes:

\[\int{dI} = \int\left(\frac{\gamma}{\beta S} - 1\right) {dS}\]

que es muy fácil pues son inmediatas:

\[I + C_1 = \frac{\gamma}{\beta} \ln S - S + C_2\]

Podemos juntar las dos constantes de integración en una sola y calcularla para las condiciones iniciales \(S = S_0\) ; \(I = I_0\):

\[\begin{align} I_0 &= \frac{\gamma}{\beta} \ln S_0 -S_0 + C \\[7pt] C &= I_0 - \frac{\gamma}{\beta} \ln S_0 + S_0 \end{align}\]

y, sustituyendo esta expresión en la primera que salió de la integral, tendremos la ecuación que buscamos:

\[\begin{align} I &= \frac{\gamma}{\beta} \ln S - S + C \\[7pt] I &= \frac{\gamma}{\beta} \ln S - S + I_0 -\frac{\gamma}{\beta} \ln S_0 + S_0 \end{align}\]

Tranqui, que se puede arreglar bastante:

\[I = I_0 + \frac{\gamma}{\beta} \ln \frac{S}{S_0} + S_0 - S\]

Ya solo falta resolverla para saber qué valor de \(S\) queda cuando \(I = 0\) al final de la epidemia. Despejamos \(S\) entonces,

\[ S = I_0 - I + \frac{\gamma}{\beta} \ln \frac{S_0}{S} + S_0\]

Dado que \(I = 0\) y, además, \(I_0\) es despreciable frente a \(S_0\), esta ecuación se simplifica mucho:

\[ S = -\frac{\gamma}{\beta} \ln \frac{S_0}{S} + S_0\]

que también podemos escribir así, que queda un poco más bonita y es como sale en los libros:

\[ S = \frac{\gamma}{\beta} \ln \frac{S}{S_0} + S_0\]

Este es el valor final de \(S\) una vez que ha pasado la epidemia.

Lo malo es que ese tipo de ecuaciones donde se mezcla la incógnita con logaritmos de ella misma (o exponentes) solo se pueden resolver numéricamente, es decir, por tanteo. Si te pica la curiosidad, estas ecuaciones que no se pueden resolver están relacionadas con la función W de Lambert.

La solución se puede deducir gráficamente. Basta con dar valores a \(S\) y dibujar ambos lados de la ecuación. Mira el resultado en este caso:


Susceptibles al final de la epidemia El punto rojo representa la solución gráfica de la ecuación, son los susceptibles que no han pasado la enfermedad después de la epidemia. No es cuestión de suerte, sino de matemáticas. Como es lógico, cuanto mayor es \(\beta\) o menor es \(\gamma\), menos individuos se libran de la epidemia. Lo que te puede resultar sorprendente es que también influye la densidad inicial \(S_0\): cuanto mayor, más afectados por la enfermedad. Así que la densidad de población no solo determina que se produzca la epidemia, sino también la fracción de individuos que se verá afectada por la enfermedad.




El factor R0

La mayor virulencia en poblaciones grandes se puede intuir fácilmente: si en el ejemplo un intectado contagia a 2 personas en una ciudad de 1000 habitantes entonces, en una de 8000 (8 veces más poblada) contagiará a 16 (8 veces más) y, por tanto, la velocidad de propagación será 8 veces mayor que en la ciudad de 8000 almas.

El factor por el que se multiplica la infección (o número de individuos contagiados por un mismo infectado) se denomina \(R_0\) y vemos que es directamente proporcional a la densidad de población.


Relación entre R0, S, β y γ

Se puede aproximar esta relación sin necesidad de acudir a las diferenciales, basta al invertir el razonamiento con el que se calculó \(\beta\) y \(\gamma\). Si no caes, también puedes seguir el camino más seguro a partir de las ecuaciones SIR:

  • Suponemos que la velocidad de contagios es constante al principio de la epidemia, entonces los nuevos infectados serán la primera parte de la segunda ecuación: \[ \frac{\Delta I}{\Delta t} \approx \beta S I\] que podemos reordenar como \[ \Delta I \approx \beta S I \Delta t \]
  • Esta expresión, cuando \(\Delta t = \frac{1}{\gamma}\), es el incremento de infectados durante el periodo que dura el tiempo de convalecencia: \[ \Delta I \approx \beta S I \frac{1}{\gamma} \]
  • Si definimos \(R\) como el factor por el que aumenta el número de afectados provocados por un solo infectado, solo hay que dividir la expresión anterior por \(I\):
    \[ R \approx \frac{\Delta I}{I} = \frac{\beta S}{\gamma} \]

Date cuén de que \(R\) no es constante porque depende de \(S\), que disminuye conforme transcurre la epidemia. Por eso, se utiliza el término \(R_0\), el máximo valor de contagios al principio de la epidemia, con el máximo de susceptibles \(S_0\):

\[ R_0 = \frac{\beta S_0}{\gamma} \]

Ya ves que \(R_0\) solo tiene sentido al principio de la epidemia, sin embargo, por extensión se suele utilizar para cualquier valor de \(S\), aunque esto no tiene sentido, especialmente cuando la epidemia ha pasado, lo que también evidencia cierto yerro del modelo SIR.



En el ejemplo académico teníamos \(R_0 = 2\) y la población era de 1000 habitantes y hemos hecho el cálculo para la población de 8000. Por curiosidad, apliquémoslo a las otras poblaciones:

HABITANTES \(R_0\) (al inicio de la epidemia)
8000 16
4000 8
2000 4
1000 2
400 0.8

¡Ah migo! En la última línea tenemos la explicación del fracaso de la epidemia en la ciudad pequeña: si diez infectados solo son capaces de contagiar la enfermedad a 8, está claro que la epidemia no se producirá. Para que explote la epidemia, \(R_0\) debe ser mayor que 1. Ni siquiera hay epidemia cuando \(R_0 = 1\).

En efecto, como depende directamente de \(S\) y éstos van siempre disminuyendo, el factor \(R_0\) también va disminuyendo desde el inicio de la epidemia. Veámoslo en el ejemplo académico:

Figura 5. Evolución de \(R_0\). El mismo gráfico del ejemplo académico (1000 susceptibles), pero ahora con el valor de \(R_0\) superpuesto. Su curva es idéntica a la de \(S\), de hecho, es la misma multiplicada por \(\beta/\gamma\). Observa que, justo cuando \(R_0\) cruza el umbral de 1, la epidemia alcanza su pico y comienza a declinar. Si te fijas, una vez finalizada la epidemia, \(R_0\) sigue siendo mayor que cero, ¿tiene sentido?


Umbral epidémico

Entonces, para que se propague una enfermedad de forma epidémica debe ocurrir que \(R_0 > 1\), Esta condición, en el modelo que hemos descrito, es equivalente a

\[ S > \frac{\gamma}{\beta} \]

Cuando la densidad de población supera este umbral, se produce la epidemia.



Figura 6. Umbral epidémico. Prueba con distintos valores iniciales de \(S\) e \(I\) moviendo los puntos verde y rojo, también variando \(\beta\) y \(\gamma\) con los cursores. Verás que el valor \(\gamma/\beta\) fija el umbral que desencadena la epidemia. Si \(S\) está por encima, como siempre disminuye, llegará un momento en el que iguale a \(\gamma/\beta\). Justo entonces se alcanza el pico de la epidemia y ésta comienza a decaer. Si el valor inicial de \(S\) está por debajo, no se produce la epidemia ¡por muchos infectados que haya!.



COVID-19 en la Costa del Sol

El inicio de la epidemia COVID en la Costa del Sol nos da un ejemplo de estas simples matemáticas. Las primeras semanas de propagación de la enfermedad ocurrieron con estas cifras oficiales

FECHA INFECTADOS
27/2/20 1
28/2/20 4
29/2/20 6
1/3/20 6
2/3/20 6
3/3/20 7
4/3/20 7
5/3/20 9
6/3/20 18
7/3/20 22
8/3/20 27
9/3/20 42
10/3/20 59
11/3/20 77
12/3/20 97
13/3/20 128
14/3/20 180

Evolución de los infectados en la Costa del Sol en el primer brote de COVID-19 durante finales de febrero y principio de marzo de 2020. El ajuste a una cruva exponencial es prácticamente perfecto (se ha hecho reduciendo la suma de diferencias cuadráticas con los datos sin transformar, con el código de aquí abajo, en vez de hacer la típica transformación logarítmica que introduce cierto sesgo hacia los números pequeños). El comportamiento exponencial se debe a la baja proporción de infectados sobre el total de la población, que aún dejan muy lejos el pico de la epidemia.

Infectados <- c(1, 4, 6, 6, 6,  7, 7, 9, 18, 22, 27, 42, 59, 77, 97, 128, 180)
tiempo <- 0:16

#---- definir la suma de diferencias cuadraticas como función
SDC <- function(par) {
  I <- par[1]*exp(par[2]*tiempo)
  sum((Infectados - I)^2)
}

#---- buscar los parámetros que la minimizan
ajuste <- optim(par = c(1, 0.1), SDC)
I0 <- ajuste$par[1]
a <- ajuste$par[2]


Cálculo de parámetros

Veamos si podemos calcular los parámetros de la epidemia. El problema es muy interesante, matemáticamente hablando: consiste en el ajuste de una función que no tiene expresión analítica explícita, pues resulta de la integración numérica de dos ecuaciones diferenciales simultáneas. Dejo aquí un frente abierto, intentando ajustar tanto \(\beta\) y \(\gamma\) como \(S_0\) directamente desde los datos, porque ahora el objetivo principal es más evolutivo que matemático, así que con un poco de habilidad se puede simplificar el asunto, si se puede estimar el valor de \(S_0\) y \(\gamma\) independientemente de los datos.


Valor de \(S_0\)

Propiamente dicho, no es un coeficiente, pero sí un parámetro del modelo que debemos ajustar. Dado que el foco principal se localizó en toda la Costa del Sol (\(S_0 \approx 1.400.000 \text{ habitantes}\)) y esta zona muestra costubres y propiedades de movilidad muy homogéneas, parece acertado empezar con este valor.


Valor de \(\gamma\)

La duración total de la enfermedad era muy indefinida, iba desde los 24 a los 57 días, según las fuentes de donde procedía la información. No obstante, dado que en Málaga ya se aislaban a las personas con los primeros síntomas, para nuestro cálculo solo tendremos en cuenta el tiempo que el recién contagiado circuló libremente sin mostrar síntomas pero siendo capaz de contagiar a otros, un periodo que puede ser entre una y dos semanas. Tomaremos un valor de 10 días y luego calcularemos la incertidumbre del resultado con respecto a este dato, si es menester. Así, podemos dar \(\gamma = 0.1 \text{ días}^{-1}\).


Valor de \(\beta\)

La ecuación central del modelo se puede escribir de esta forma:

\[ \frac{dI}{dt} = (\beta S - \gamma) I \]

Como aún aparece \(S\) en la expresión, su ajuste sigue requiriendo el método más sofisticado que abordaremos en otra ocasión. No obstante, en los primeros compases de la epidemia el número de infectados era muy bajo (en comparación con \(S_0\)) y se puede asumir que \(S\) es prácticamente constante en estos primeros momentos, de manera que

\[ \frac{dI}{dt} \approx (\beta S_0 - \gamma) I \] expresión que tiene integral inmediata:

\[ I = I_0 \, e^{(\beta S_0 - \gamma) t} \]

esto es, el comportamiento exponencial puro que aparece al principio de toda epidemia. Si comparamos con el ajuste de antes, vemos que en este caso

\[ \beta S_0 - \gamma = 0.29 \]

es decir,

\[ \beta = \frac{0.29 + \gamma}{S_0} = \frac{0.29 + 0.1}{1.4 \times 10^6} = 2.8 \times 10^{-7} \text{ ind}^{-1}\text{ día}^{-1} \]


Valor de \(R_0\)

Del mismo ajuste exponencial se obtiene \(R_0\) fácilmente:

\[ R_0 = \frac{\beta S_0}{\gamma} = \frac{0.29 + \gamma}{\gamma} = \frac{0.29 + 0.1}{0.1} \approx 4 \]


Otra forma de calcular \(R_0\) es a partir de su significado

\[ R_0 = \frac{\Delta_c I}{I} \] donde \(\Delta_c I\) es el incremento de infectados durante el tiempo que dura la fase contagiosa. Para utilizar los incrementos diarios \(\Delta I\) solo hay que multiplicarlos por los días que dura la fase contagiosa o, de forma equivalente, dividir por \(\gamma\):

\[ R_0 = \frac{\Delta I}{\gamma I} \]

Reordenado un poco, se obtiene la ecuación de una recta:

\[ \Delta I = \gamma R_0 \, I \]

esto es, al representar los incrementos diarios frente al número de infectados, aparece una recta cuya pendiente es \(\gamma R_0\). Veamos…

FECHA INFECTADOS INCREMENTO DIARIO
27/2/20 1
28/2/20 4 3
29/2/20 6 2
1/3/20 6 0
2/3/20 6 0
3/3/20 7 1
4/3/20 7 0
5/3/20 9 2
6/3/20 18 9
7/3/20 22 4
8/3/20 27 5
9/3/20 42 15
10/3/20 59 17
11/3/20 77 18
12/3/20 97 20
13/3/20 128 31
14/3/20 180 52

Los casos diarios son proporcionales al total de infectados. Esto permite obtener \(R_0\) de la pendiente: solo hay que multiplicar por la duración de la fase contagiosa (o dividir por \(\gamma\)). Así se obtiene un valor de \(R_0 = \frac{0.36}{0.1} =3.6\), un poco menor que el calculado de la curva exponencial, aunque ambos se redondean a 4 contagios por infectado.


Date cuén de que \(R_0\) no tiene unidades. Este valor coincide con los cálculos hechos por modelos más sofisticados y está en concordancia con los valores de \(R_0\) determinados en aquella época en China y, durante bastante más tiempo, en Italia.


De interés epidemiológico

De esta sencilla aproximación se puede deducir una conclusión de interés epidemiológico: para reducir el \(R_0\) por debajo de 1, dado que muy difícil acelerar \(\gamma\), se puede disminuir \(S\) (con vacunas, que en aquellos momentos no existían) o reducir \(\beta\) (con restricciones de movilidad, como se hizo entonces). Según el valor calculado antes, bastaría con dividir algunos de estos dos elementos entre 4, esto es, en un 75 %. Esto significa vacunar al 75 % de la población susceptible, o bien, limitar nuestros contactos a 1 de cada 4 personas que las que tratamos habitualmente. Estas conclusiones obtenidas solo con los datos de las primeras semanas y un sencillo análisis, coinciden con las medidas que se tomaron en la lucha contra esa epidemia a mediados del 2020.




Una epidemia puede regular la población

¿Podría una enfermedad contagiosa controlar el crecimiento de una población?

Hemos visto que cuanto mayor es la densidad de individuos, más probable es que se produzca una epidemia y mayor fracción de la población se ve afectada. Entonces, una población en crecimiento exponencial es una bomba de relojería: en algún momento explotará en forma de proceso contagioso y reducirá la densidad de individuos por debajo del umbral epidémico.

Podemos comprobarlo añadiendo un término de crecimiento a las ecuaciones originales. Hay varias formas de hacerlo, la más sencilla es considerar que los susceptibles se reproducen de manera exponencial. He aquí las ecuaciones y la dinámica:

\[\begin{align} \frac{dS}{dt} &= r S - \beta S I \\[7pt] \frac{dI}{dt} &= \beta S I - \gamma I \\[7pt] \frac{dR}{dt} &= \gamma I \end{align}\]





Figura 7. El crecimiento de la población se puede añadir como una entrada al compartimento \(S\) que representaría la reproducción exponencial de estos individuos. El suministro constante de \(S\) hace que la densidad supere periódicamente el umbral epidémico, lo cual provoca oscilaciones en la densidad de población. En este caso, \(R\) solo puede representar a los muertos debido a la enfermedad, que compensan el nacimiento de nuevos individuos.


Endemia

La enfermedad contagiosa, entonces, siempre está presente en la población y por ello recibe el nombre de endemia. Las endemias son una forma de regulación poblacional y es probable que, evolutivamente, sean inevitables.


Variaciones de una endemia

En el caso anterior la endemia se mantiene en la población en forma de brotes episódicos, aunque hay otras variantes que son más estables. Veamos una de ellas donde los infectados también se reproducen.

Si considermos esta posibilidad, la variante más interesante surge cuando los descendientes de infectados no portan la enfermedad sino que nacen susceptibles porque si nacieran infectados, el caso no tendría interés (sería equivalente al primer ejemplo, ¿intentas demostrarlo?).

Veamos las ecuaciones y la dinámica:

\[\begin{align} \frac{dS}{dt} &= r (S + I) - \beta S I \\[7pt] \frac{dI}{dt} &= \beta S I - \gamma I \\[7pt] \frac{dR}{dt} &= \gamma I \end{align}\]




Los infectados se reproducen y sus descencientes nacen susceptibles. En contra de lo que podríamos intuir, esta variante introduce un elemento de estabilidad en la población que, aún estando controlada por la endemia, lo hace de manera que las oscilaciones se amortiguan apaulatinamente.




Epidemias con reinfección

La persistencia de una enfermedad en la población es posible cuando hay alguna fuente de susceptibles. Estos pueden ser nuevos nacimientos como acabamos de ver o, también, individuos \(R\) que han pasado la enfermendad y pierden la inmunidad al cabo de cierto tiempo.

Cuando los recuperados vuelven a ser susceptibles y se infectan de nuevo aparece una dinámica cíclica vulgarmente conocida como olas. Esto ocurre porque se introduce un nuevo elemento en las ecuaciones que las convierte en un oscilador.

El modelo más sencillo que incorpora este efecto es una simple modificación del original que incluye el inverso de la duración de la inmunidad \(v\) como tasa de pérdida de inmunidad. Aquí, los individuos \(R\) no pueden ser muertos, claro está.

\[\begin{align} \frac{dS}{dt} &= \frac{1}{v} R - \beta S I \\[7pt] \frac{dI}{dt} &= \beta S I - \gamma I \\[7pt] \frac{dR}{dt} &= \gamma I - \frac{1}{v} R \end{align}\]





Figura 8. Epidemia con reinfección. Cuando los recuperados pierden la inmunidad se producen oleadas de infectados y la enfermedad persiste indefinidamente en la población. La distancia entre los picos de estas olas y su intensidad son proporcionales a la duración de la inmunidad. Observa que la duración de la inmunidad solo influye en el número de infectados medio, no en el de susceptibles.



Con reproducción y mortalidad y …

…lo que se te ocurra. La posibilidad de perder la inmunidad obliga a considerar las tasas demográficas naturales y esto abre un abanico enorme de posibilidades. Si el modelo es coherente (debe tener entradas y salidas que se puedan compensar) la endemia puede actuar por sí sola como control poblacional.

Como ejemplo, veamos un caso con una tasa \(r\) de crecimiento de \(S\) y una tasa de mortalidad \(\mu\) provocada por la enfermedad:

\[\begin{align} \frac{dS}{dt} &= r S + \frac{1}{v} R - \beta S I \\[7pt] \frac{dI}{dt} &= \beta S I - \gamma I - \mu I \\[7pt] \frac{dR}{dt} &= \gamma I - \frac{1}{v} R \end{align}\]




La mortalidad por enfermedad compensa el crecimiento natural. Prueba con distintas combinaciones de parámetros y comprueba que siempre se logra el equilibrio. Algunos resultados son triviales, pero otros te pueden sorprender. Intenta comprender la respuesta dinámica. En este caso, el equilibrio se logra cuando \(r S = \mu I\).


Hay muchas combinaciones posibles, es cuestión de imaginación y combinarlas en forma de diferenciales. Anímate a inventar una.




¡Más realismo, plis !

El modelo SIR que hemos visto hasta ahora es muy fácil de entender y da predicciones razonables, por ello es tan popular ¡que sale hasta en las películas!. No obstante, no se le pueden pedir muchas peras y falla cualitativamente cuando se pone a prueba en algunas circunstancias, como la predicción del final de la epidemia o la previsión de oleadas sucesivas. Algunos de estos peros se soslayan con un tipo especial de ecuaciones diferenciales, aunque la solución definitiva viene cuando se eliminan por completo las diferenciales y se usan modelos basados en individuos. Veamos cómo.

El problema de γ

Este coeficiente es el mayor problema del modelo SIR. En la Figura 2 se explica intuitivamente como el inverso del tiempo de convalecencia y aquí está el detalle: \(\gamma\) solo se puede considerar constante si se cumple alguna de estas dos condiciones:

  • El número de infectados está en estado estacionario.
  • La probabilidad diaria de recuperación es independiente del tiempo de convalecencia.

Y ninguna es verosímil en una epidemia real.


¡Algo no cuadra!

En un pueblo con 1000 habitantes susceptibles se contagian 10 el primer día. La enfermedad dura 5 días. ¿Cuántos se habrán recuperado al segundo día?

No hay que un hacha para deducir que ninguno, ¡tienen que pasar 5 dias!. Sin embargo, como \(\gamma\) = 0.2, el modelo SIR predice que el segundo día habrá 2 recuperados.



Tránsito de los convalecientes. A la izquierda, la dinámica realista, a la derecha, con un tiempo fijo para cada infectado. A la izquierda, la supuesta por las ecuaciones SIR, con una probabilidad diaria \(\gamma\) de recuperación individual.




Para corregir este problema hay que considerar que los infectados que se recuperan por unidad de tiempo son los que se infectaron exactamente hace 5 días (en el ejemplo). Esto se podría escribir en forma de ecuaciones como:

\[\begin{align} \frac{dS}{dt} &= - \beta S I \\[7pt] \frac{dI}{dt} &= \beta S I - \beta S_{5} I_{5} \\[7pt] \frac{dR}{dt} &= \beta S_{5} I_{5} \end{align}\]

donde \(S_{5}\) e \(I_{5}\) son, respectivamente, el número de susceptibles e infectados 5 días antes de ahora. Estas expresiones, un tanto extrañas desde el punto de vista diferencial, no suponen problema alguno a la hora de integrarlas numéricamente. Solo hay que añadir unas cuantas líneas al código del modelo SIR original:

# INTEGRACIÓN DE LAS ECUACIONES S.I.R.

#---- tiempo final
tiempo_final <- 80
t <- seq(from = 1, to = tiempo_final)

#---- condiciones iniciales y valores de coeficientes
S <- numeric()
S[1] <- 999 # susceptibles iniciales
I <- numeric()
I[1] <- 1      # infectados iniciales
R <- numeric()
R[1] <- 0      # retirados iniciales
beta <- 0.0004
gama <- 1/5

#---- bucle integración Euler SIR gamma
for (i in 1:(length(t)-1)){
  contagios <- beta*S[i]*I[i]
  retirados <- gama*I[i]
  S[i+1] <- S[i] - contagios
  I[i+1] <- I[i] + (contagios - retirados)
  R[i+1] <- R[i] + retirados
}

#---- gráfico SIR gamma
par(bty = "n", las = 1)
plot(t, S, ylim = c(0, 1000), type = "l", col = "green", lty = 2, xlab = "Tiempo (días)", ylab = "Individuos")
lines(t, R, col = "grey", lty = 2)
lines(t, I, col = "red", lty = 2)
legend("topright", c("S","I","R"), lwd = 2, col = c("green", "red", "grey"), cex = 0.8, bty = "n")

#---- modelo con desfase

S[1] <- 999    # susceptibles iniciales
I[1] <- 1      # infectados iniciales
R[1] <- 0      # retirados iniciales
conv <- 5      # tiempo de convalecencia


#---- bucle integración Euler SIR desfase
for (i in 1:(length(t)-1)){
  contagios <- beta*S[i]*I[i]
  retirados <- 0
  if (i > conv) {
    retirados <- beta*S[i - conv]*I[i - conv]
  }
  S[i+1] <- S[i] - contagios
  I[i+1] <- I[i] + (contagios - retirados)
  R[i+1] <- R[i] + retirados
}

#---- gráfico
lines(t, S, col = "green", lwd = 2)
lines(t, R, col = "grey", lwd = 2)
lines(t, I, col = "red", lwd = 2)

Figura 9. Comparación del modelo SIR clásico y el de ecuaciones desfasadas. Aunque el resultado final es idéntico, la dinámica del modelo con ecuaciones desfasadas (líneas continuas) es mucho más rápida porque no sufre el efecto amortiguador de la salida prematura que provoca \(\gamma\). Y la curva epidémica es, como ya sospechábamos, simétrica. Esta figura se ha hecho con R, pero si no te mola puedes probar con la figura interactiva de abajo:



Figura 9 interactiva. Observa que también hay dos parámetros, no está \(\gamma\) sino el tiempo de desfase, en este caso, la duración de la fase infecciosa o convalecencia \(c\). Cuanto más dura la fase infecciosa mayor es el pico, aunque el final de la epidemia no se afecta tanto como al usar \(\gamma\).


Ecuaciones diferenciales con retardo

Estas ecuaciones no son tan raras como piensas. Ya aparecieron en el episodio de la logística y deberían ser usadas en procesos biológicos que se manifiestan con cierto desfase. Se llaman «diferenciales con retardo» o DDE (delay differential equations, supongo en inglés). Se parecen un poco a las ecuaciones discretas o de diferencia finita, aunque son más sofisticadas porque el desfase actúa como una segunda variable continua. Aquí tienes una aplicación epidemiológica real de este tipo de ecuaciones.

Por lo visto, la sintaxis más aceptada es así:

\[\begin{align} \frac{dS}{dt} &= - \beta S I \\[7pt] \frac{dI}{dt} &= \beta S I - \beta S_{\tau} I_{\tau} \\[7pt] \frac{dR}{dt} &= \beta S_{\tau} I_{\tau} \end{align}\]

donde \(\tau\) representa el desfase de la variable afectada.




Reinfección y desfase

¿Qué efecto tiene este nuevo planteamiento sobre las epidemias con reinfección?

Al considerar el periodo de inmunidad \(v\), tendríamos una salida de \(R\) igual a la entrada que se produjo en un tiempo \(v\) anterior y, como ésta es justo la entrada a \(I\) en un tiempo de convalecencia \(c\) anterior, resulta que la salida de \(R\) sería \(\beta \, S_{c+v} \, I_{c+v}\).

Creo que ve mejor en un diagrama:


Figura 10. Tiempo de desfase y estados. El paso de \(S\) a \(I\) es instantáneo. Ahora permanece en estado infectado durante \(c\) días, al cabo de los cuales se recupera. Estará en estado \(R\) durante \(v\) días, para volver a estado \(S\). Así, desde que se infecta hasta que vuelve a ser susceptible, pasan \(c+v\) días.


Las ecuaciones quedarían así:

\[\begin{align} \frac{dS}{dt} &= \beta S_{c + v} I_{c + v} - \beta S I \\[7pt] \frac{dI}{dt} &= \beta S I - \beta S_{c} I_{c} \\[7pt] \frac{dR}{dt} &= \beta S_{c} I_{c} -\beta S_{c + v} I_{c + v} \end{align}\]

No es difícil adaptar el código anterior para integrarlas (es cuestión de ser ordenado, ¡inténtalo!). Si no te atreves, prueba al menos la dinámica interactiva y observa cómo se producen oleadas periódicas.



Figura 11. Endemia con reinfección basada en diferenciales con retardo. La pérdida de inmunidad pasado cierto tiempo se manifiesta en una serie de oleadas epidémicas, que pueden mantenerse indefinidamente para algunas combinaciones de coeficientes (es un modelo de comportamiento complejo y, por ahora, queda fuera de nuestra capacidad de análisis). Si te acuerdas, en el modelo con \(\gamma\) se amortiguaban las oleadas injustificadamente. Este modelo refleja con mayor realismo lo que ocurre, por ejemplo, con la gripe o el covid.


Modelos basados en individuos

Tratar a una población con reglas basadas en la cinética química puede ayudar a comprender los elementos básicos de la epidemia pero le queda muy lejos la descripción de dinámicas complejas, como las que aparecen al considerar la heterogeneidad espacial. El tratamiento del espacio con diferenciales es una tarea ardua y también nos queda un poco lejos (por ahora). Sin embargo, hay una técnica de simulación que abre un montón de posibilidades: los modelos basados en individuos. Aquí no se trata con propiedadades globales, al contrario, cada individuo se comporta de forma simple, de acuerdo a unas reglas sencillas. Así, del comportamiento colectivo de entes sencillos surgen dinámicas complejas.

Cuando se describe el fenómeno epidémico desde la mecánica basada en individuos se disfruta de unos axiomas más intuitivos:

  • Los individuos se mueven al azar por su pueblo.
  • Cuando un infectado contacta con un susceptible lo puede contagiar con cierta probabilidad.
  • Después de un periodo de convalecencia, el infectado se recupera y ya no contagia más.

Son unas reglas muy sencillas que desencadenan dinámicas muy realistas gracias a un gran número de individuos. La única dificultad, más que matemática, es puramente técnica: necesitamos saber algo de programación. El vídeo que está al principio del episodio está hecho con R. Aquí tienes una versión simplificada del código:

# MODELO S.I.R. BASADO EN INDIVIDUOS
# Modelo básico para explicar el desarrollo de una epidemia
# (sin vídeo)


#---- tiempo final y tamaño del pueblo
tiempo_final <- 150
xmax <- 60                    # ancho del pueblo (desde x = 1 hasta x = 100)
ymax <- 60                    # largo "     "    (desde y = 1 hasta y = 100)
XY <- matrix(0L, xmax, ymax)   # el pueblo, propiamente dicho

#---- variables
St <- integer()
It <- integer()      # para guardar los valores de S, I, R a cada tiempo
Rt <- integer()

x <- integer()      # posición x de los individuos
y <- integer()      #     "    y      "       "
estado <- integer() # estado del individuo  S:0  I:1  R:2
conval <- integer() # tiempo que lleva de convalecencia

#---- coeficientes y demás
p <- 0.9                 # probabilidad de contagio
d <- 15                  # duración de la enfermedad
mov <- c(-1, 0, 1)       # movimiento (una casilla pacalao)
pmv <- c(0.4, 0.2, 0.4)  # probabilidad de moverse en cada dirección XY

#---- condiciones iniciales
N <- 1000      # número total de individuos
S <- N - 1     # susceptibles iniciales
I <- 1         # infectados      "
R <- 0         # retirados       "
St[1] <- S
It[1] <- I
Rt[1] <- R

# Localizar a los individuos
for(i in 1:N){
  x[i] <- floor(xmax*runif(1) + 1)
  y[i] <- floor(ymax*runif(1) + 1)
  estado[i] <- 0
  XY[x[i], y[i]] <- i  # localizar al último en llegar
}

# infectados
for(i in 1:I){
  x[i] <- floor(xmax*0.5 + 1)  
  y[i] <- floor(ymax*0.5 + 1)
  estado[i] <- 1
  XY[x[i], y[i]] <- i              
  estado[i] <- 1
  conval[i] <- 0
}

#---- BUCLE DEL TIEMPO
for(t in 2:tiempo_final){
  
  XY1 <- XY     # para hacer las operaciones sincronizadas
  XY[] <- 0L    # borrar la matriz
  
  #---- bucle de los individuos
  for(i in 1:N){
    
    # comprobar convalecencia
    if(estado[i] == 1) {# solo para infectados
      conval[i] <- conval[i] + 1
      if(conval[i] > d) {# se recupera
        estado[i] <- 2
        I <- I - 1
        R <- R + 1
      }
    }
    
    # movimiento al azar
    dx <- sample(mov, size = 1, prob = pmv)
    dy <- sample(mov, size = 1, prob = pmv)
    x[i] <- x[i] + dx
    y[i] <- y[i] + dy
    if(x[i] > xmax) {x[i] <- 1} # por si se sale por los lados
    if(x[i] < 1) {x[i] <- xmax}
    if(y[i] > ymax) {y[i] <- 1} # por si se sale por arriba/abajo
    if(y[i] < 1) {y[i] <- ymax}
      
    # detectar encuentro
    o <- XY1[x[i], y[i]]
    if(o > 0) {
      if(o != i) { # se ha encontrado con otro
        # se lo pego
        if((estado[i] == 1) & (estado[o] == 0)){
          if(runif(1) < p){
            estado[o] <- 1
            conval[o] <- 0
            I <- I + 1
            S <- S - 1
          }
        }
        # me lo pega
        if((estado[o] == 1) & (estado[i] == 0)){
          if(runif(1) < p){
            estado[i] <- 1
            conval[i] <- 0
            I <- I + 1
            S <- S - 1
          }
        }
      }
    }
    
    XY[x[i], y[i]] <- i   # actualizar localización
  }
  
  St[t] <- S
  It[t] <- I    # guardar valores
  Rt[t] <- R
  
}

#---- gráfico final
par(bty = "n", las = 1)
plot(St, type = "l", lwd = 2, col = "green", ylim = c(0,N), xlab = "Tiempo", ylab = "Individuos")
lines(It, lwd = 2, col = "red")
lines(Rt, lwd = 2)
legend(0, N/2, c("S", "I", "R"), lty = c(1, 1, 1), lwd = c(2, 2, 2), col = c(3, 2, 1), bty = "n", cex = 0.8)

Figura 12. Simulación basada en individuos. Con los titubeos debidos al azar, el patrón de la epidemia aparece claramente.

La Figura 12 muestra una sola simulación y, como el azar juega un papel importante, el resultado será ligeramente distinto si se vuelve a repetir. Aún así, ¿notas algo diferente en la forma de la curva epidémica?

Veamos la media de 100 simulaciones:

Figura 13. Promedio de 100 simulaciones. Se parece al modelo SIR con diferenciales peeerooo… ¡El inicio de la epidemia es demasiado lineal!

El sorprendente resultado es consecuencia de la estructura espacial: aunque haya muchos susceptibles, cada infectado solo puede acceder a los que están más cerca de él, que es una cantidad constante. Esto se traduce en un frente de llama que avanza sobre un bosque de susceptibles dejando tras sí un prado de recuperados. El modelo basado en la ley de acción de masas es incapaz de reproducir este resultado porque, en su naturaleza, un infectado puede acceder a cualquier susceptible independientemente de lo lejos que se encuentre.

Veamos ahora qué pasa cuando disminuye la probabilidad de contagio y aumenta la duración de la enfermedad. Intuitivamente, esto significa que el infectado se moverá más lejos y podrá acceder a susceptibles más distantes. ¿Tendremos un inicio exponencial?

Figura 14. Disminuye probabilidad de contagio pero aumenta duración de la enfermedad. ¡Efectivamente, el inicio de la epidemia ahora es exponecial!

¿Y el final de la epidemia? Parece que, independientemente de cómo sea el inicio, la caída no concuerda con la dinámica simple \(-\gamma I\), sino que es mucho más rápida, cosa que concuerda con la duración fija de la fase contagiosa. Vamos a controlar ahora la media del día infeccioso en que se encuentran los individuos.

Distribución del tiempo de convalecencia. Histograma en tiempo real. El eje de abscisas representa el día de la fase infecciosa en que se encuentra cada individuo. En ordenadas, el número de individuos que están en ese día. La línea roja representa el valor medio del histograma.

En el vídeo se ve que al principio de la epidemia los infectados llevan poco tiempo en esa fase. Conforme pasan los días, estos individuos se van acercando al final de la fase mientras entran nuevos infectados por la izquierda. En el momento álgido de la epidemia, el valor medio coincide con la mitad de la duración de la fase y solo aquí tendría sentido aplicar \(\gamma\) como el inverso del tiempo de convalecencia. Antes de ese momento, el valor equivalente de \(\gamma\) sería menor (recuperación media más lenta) y a partir de ahí, \(\gamma\) sería mayor (recuperación media más rápida). La simulación basada en individuos es otra prueba de que el modelo SIR simple no es realista porque el coeficiente \(\gamma\) no puede ser constante.

Figura 15. Recuperación de infectados. El modelo diferencial SIR (naranja) con \(\gamma\) constante dispersa en el tiempo la aparición de recuperados al considerar homogéneo el grupo de infectados, por eso se adelanta y se retrasa con respecto al modelo más realista (azul claro).


Ejercicios selectos

1. «El médico»

Uno de los personajes reales del famoso libro de N. Gordon es el sabio persa Avicena, que en la novela aparece como médico y maestro de Isfahán sobre el año 1000. En uno de los pasajes de la versión peliculera, se desata una epidemia de peste bubónica en Isfahán y Avicena convierte su madrasa en hospital. Avicena lleva la cuenta de muertos diarios en una pared, haciendo rayitas con una tiza. Las columnas de rayas van en aumento hasta que un día empiezan a disminuir. Cuando se da cuenta, traza el contorno de las barras y así dibuja la primera curva epidémica de la historia.

Calcula los coeficientes de la epidemia que sufrió Isfahán


2. Un examen venido del cielo

Un profesor de ecología que estaba empanao se dejó el examen final en la fotocopiadora, con tal fortuna que lo encontró Pepe Lehninger, un estudiante de buen corazón. A Pepe se le planteó el dilema de quedarse el hallazgo para su beneficio o compartirlo con sus compañeros.

La decisión no era fácil: si lo compartía con todos se descubriría el ecoleak y se podría anular la prueba; si se lo quedaba para él, su conciencia lo castigaría durante el resto de su vida. Así que tomó una decisión salomónica y se lo envió a sus 3 contactos más auténticos del Guas-One, la red social del momento, bajo promesa de no difundirlo absolutamente a nadie más.

«A nadie más» ¡Ja!

Los amigos de Pepe eran casi tan bondadosos como él y no pudieron evitar la tentación. Entre consultar el Guas-One, descargar el archivo, comprobar que no era fake y reguasearlo a sus propios contactos, podían pasar unos 20 minutos. Faltaban menos de 24 horas para el examen y cabía la posibilidad de que algunos compañeros hubieran tirado la toalla, aún contando con la copia del examen y, por tanto, perdiendo el interés por reguasearlo (la tasa de resignación era del 20 %).

¿Llegará el examen a tiempo para los 120 estudiantes de la asignatura?


3. Dilemas de guionista

Después de pasarlas canutas durante la huelga, Jorgelina Lucas recibió el encargo de escribir un guión para una nueva serie de Güinflix con la expresa obligación de respetar escrupulosamente el rigor científico pero sin perder la masacre sanguinolenta marca de la casa.

Enseguida, J. Lucas pensó en una pandemia de un virus ébola mutante, que llegaba a Nueva York y derretía los sesos de la peña antes de que pudieran sonarse los mocos. ¡Original, oiga! Y llamó a un amigo que había estudiado biología para que le echase una mano.

―¡El virus lo crean con CRISPs/Cas9 y se escapa del laboratorio en las chancletas del ayudante! ―dijo Aurelio, su amigo, entusiasmado―. ¡Y se sube al autobús que va a Brooklyn!

―¡Eso, con crispis! ¡Y lo pilla todiós! ―exclamó Jorgelina―. ¡Y el laboratorio secreto está en un almacén abandonado de Harlem!

―¡Entonces ―añadió Aurelio, enarbolando el índice derecho―, la científica jefe explica al presidente en una pizarra las ecuaciones matemáticas que predicen la apocalipsis global!

―¿Ecuaciones…? ¿…matemáticas? ―preguntó Lucas con gesto dubitativo.

―¡Pos claro! ―contestó Aurelio.― ¡Se rilarán por las patabajo cuando se enteren del R0 del virus mutante!

―No sé, no sé… ―dijo Lucas bajando el labio inferior hacia una esquina de la boca.

―¿Pero no te han dicho que debe ser rigurosamente científica? ―se justificó Aurelio.

―Ya, pero es que la gente cambia de serie cuando ven matemáticas y cosas desas ―explicó Jorgelina― y encima clican en 👎.

―Bueno… en vez de la pizarra velleda podría salir una pantalla holográfica 3D ―dijo Aurelio haciendo cucamonas virtuales en el aire, como si abriera alacenas imaginarias, moviendo chichinabis ilusorios de aquí para allá.

―¡Eso está mejor! ―concedió Jorgelina―. Pero sin pasarse con los detalles matemáticos. Que salga un formuleo de farfolla, en fosforito, con cosas de inteligencia artificial y tal.

―Podría salir un mapa de Nueva York y cómo se va extendiendo la epidemia. En rojo y todo eso, ¿qué te parece? ―dijo Aurelio.

―¡Y que los militares de la reunión digan que habrá que lanzar misiles y movilizar a la guardia nacional para detener la epidemia! ―añadió Lucas.

―Hombre… ―dudó Aurelio―. ¿Cuánto tiempo pasa entre que se infectan y mueren?

―No lo había pensado… ―contestó J. Lucas―. A ver esto… A los diez minutos de contagiarse, les salen burujones sanguinolentos por toslaos, empiezan a gomitar cuajarones verdes, se les caen las orejas y a la media hora se licúan dejando un charco baboso. Y corrosivo, tal vez…

―En Brooklyn… uhm… a ver… ―murmuró Aurelio mientras hacía numerillos en una servilleta del Grumpy―. No es posible, Jorgelina.

―¿Cómo que no es posible? ―bramó Jorgelina―. ¡Tú no sabes el equipo de efectos especiales que tiene Güinflix¡

―No lo dudo, pero no es por eso ―repuso Aurelio, enseñándole la servilleta.

¿Por qué no era posible?

―¿Más tiempo? ―preguntó Lucas―. Pero los episodios duran veinte minutos, ¡los personajes no pueden andar deambulando por ahí sin hacer nada más que hablar de sus sosas vidas! ¡Tiene que haber cacao instantáneo!

―Pues entonces… ―dijo Aurelio un poco decepcionado.

―¡Ya está! ¡Se convierten en zombies! ―gritó Jorgelina, y añadió:― Así tendremos el tiempo necesario, porque un zombie puede durar lo que quieras.

―¿Zombies? Yo pensaba que la serie intentaba divulgar de forma amena el conocimiento científico riguroso, aprovechar para enseñar matemáticas aplicadas, epidemiología, algo de simulación de sistemas… ―dijo Aurelio con tristeza.

―Ahora lo entiendo, Au ―dijo Jorgelina con condescendencia.

―¿Entiendes lo que quiero decir? ―se ilusionó Aurelio, abriendo los ojos.

―Entiendo que no encontraras novia en la uni, Au ―dijo Lucas, entornando los suyos.